package com.smart.oil.service;

import com.smart.oil.entity.SmUser;
import com.smart.oil.vo.req.*;
import com.smart.oil.vo.resp.LoginRespVO;
import com.smart.oil.vo.resp.PageVO;
import com.smart.oil.vo.resp.UserOwnRoleRespVO;

import java.util.List;

/**
 * @ClassName: UserService
 * TODO:类文件简单描述
 * @Author: 杨鑫鑫
 * @UpdateUser: 杨鑫鑫
 * @Version: 0.0.1
 */
public interface UserService {
    LoginRespVO login(LoginReqVO vo);
    /**
     * 退出登录
     * @Author:      杨鑫鑫
     * @UpdateUser:
     * @Version:     0.0.1
     * @param accessToken
     * @param refreshToken
     * @return       void
     * @throws
     */
    void logout(String accessToken, String refreshToken);
    PageVO<SmUser> pageInfo(UserPageReqVO vo);
    void addUser(UserAddReqVO vo);
    UserOwnRoleRespVO getUserOwnRole(String userId);
    void setUserOwnRole(UserOwnRoleReqVO vo);
    String refreshToken(String refreshToken);
    void updateUserInfo(UserUpdateReqVO vo, String operationId);
    void deletedUsers(List<String> list, String operationId);
    List<SmUser> selectUserInfoByDeptIds(List<String> deptIds);
    SmUser detailInfo(String userId);
    //个人用户编辑信息接口
    void userUpdateDetailInfo(UserUpdateDetailInfoReqVO vo, String userId);
    void userUpdatePwd(UserUpdatePwdReqVO vo, String accessToken, String refreshToken);
}
